﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace VisaValeCheck
{
    /// <summary>
    /// Todos os plugins devem herdar esta classe.
    /// </summary>
    public abstract class VisaValeCheckPluginBase
    {
        public abstract string Nome { get; }
        public abstract string Descricao { get; }        
        public abstract string Autor { get; }

        public delegate void EventoNoPluginDelegate(VisaValeCheckPluginBase plugin, string mensagem);

        public event EventoNoPluginDelegate Evento;

        /// <summary>
        /// Essa propriedade será preenchida no momento do carregamento da classe.
        /// </summary>
        public Visa VisaInteractionObject { get; set; }

        public void Sobre()
        {
            MessageBox.Show(Autor);
        }        
        protected void CallEvento(string mensagem)
        {
            if (Evento != null)
            {
                Evento(this, mensagem);
            }
        }
        public abstract void Executar();        
    }
}
